package LeetCode刷题.之前的算法;

import java.util.Scanner;

public class replace {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        StringBuffer s=new StringBuffer();
        s.append("A B");
        System.out.println(calculate(s));
    }

    public static StringBuffer calculate(StringBuffer s){
        int p1=s.length()-1;//定义一个指针指向当前字符串的尾部
        for(int i=0;i<=p1;i++){
            char c=s.charAt(i);
            if(c==' '){//如果检测到了空格
                s.append("  ");//则将当前字符串的长度加二，即在该字符串的后面加上两个任意字符，要将' '替换为%20,长度多了2
            }
        }
        int p2=s.length()-1;//定义一个指针指向字符串当前长度的尾部，
        //然后当前p1这个指针开始向前遍历，当p1指向空格的时候，将02%开始放入p1所指的位置下
        while (p1>=0&&p2>=0){
            char c=s.charAt(p1--);//p1开始前移
            if(c==' '){//一旦遇到了空格了
                s.setCharAt(p2--,'0');
                s.setCharAt(p2--,'2');
                s.setCharAt(p2--,'%');
            }
            else{
                //否则的话，就将当前p1指向元素的赋值到p2所在的位置下
                s.setCharAt(p2--,c);
            }
        }
        return s;
    }
}
